import axios from 'axios'
import cookie from 'js-cookie'
import {
    Message
} from 'element-ui';
// import router from '../router'
let base = 'http://lzy.com:8888';
// 创建axios实例
const service = axios.create({
    baseURL: base, // api 的 base_url
    timeout: 50000 // 请求超时时间
})

service.interceptors.request.use(config => {
    //如果存在 则携带tokenStr
    if (cookie.get('token')) {
        config.headers['token'] = cookie.get('token')
    }
    return config
}, error => {
    console.log(error)
})

//自定义响应拦截器
// service.interceptors.response.use(success => {
//     //业务逻辑错误
//     if (success.status && success.status == 200) {
//         if (success.data.code == 500 || success.data.code == 401 || success.data.code == 403) {
//             // Message.error({message: success.data.message});
//             return;
//         }
//         //业务逻辑处理成功
//         if (success.data) {
//             if (success.data.message!="" && success.data.message!=null){
//                 // Message.success({message: success.data.message});
//                 return success.data;
//             }
//         }
//         return success.data;
//     }

// }, error => {
//     if (error.response.code == 504 || error.response.code == 404) {
//         Message.error({message: '服务器被吃了( ╯□╰ )'})
//     } else if (error.response.code == 403) {
//         Message.error({message: '权限不足,请联系管理员'})
//     } else if (error.response.code == 401) {
//         Message.error({message: '尚未登录请登录'});
//         router.replace("/");

//     } else {
//         if (error.data.message) {
//             Message.error({message: error.data.message});

//         } else {
//             Message.error('未知错误!!!!!!')
//         }
//     }
//     return;
// });
// response 拦截器
service.interceptors.response.use(
    response => {
        /**
         * code为非200是抛错
         */
        // console.log("aaaaaaaaaaaaaaaaaaa");
        const res = response.data
        if (res.code !== 200) {
            Message({
                message: res.message,
                type: 'error',
                duration: 5 * 1000
            })

            // 50008:非法的token; 50012:其他客户端登录了;  50014:Token 过期了;
            if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
                MessageBox.confirm(
                    '你已被登出，可以取消继续留在该页面，或者重新登录',
                    '确定登出', {
                        confirmButtonText: '重新登录',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }
                ).then(() => {
                    // store.dispatch('FedLogOut').then(() => {
                    //     location.reload() // 为了重新实例化vue-router对象 避免bug
                    // })
                    router.replace("/");
                })
            }
            return Promise.reject('error')
        } else {
            return response.data
        }
    },
    error => {
        console.log('err' + error) // for debug
        Message({
            message: error.message,
            type: 'error',
            duration: 5 * 1000
        })
        return Promise.reject(error)
    }
)
//传递json格式的post请求
// export const postRequest = (url, params) => {
//     return axios({
//         method: 'post',
//         url:`${base}${url}`,
//         data: params
//     })
// };
// //传递json格式的put请求
// export const putRequest = (url, params) => {
//     return axios({
//         method: 'put',
//         url:`${base}${url}`,
//         data: params
//     })
// };
// //传递json格式的delete请求
// export const deleteRequest = (url, params) => {
//     return axios({
//         method: 'delete',
//         url:`${base}${url}`,
//         data: params
//     })
// };



// //传递json格式的get请求
// export const getRequest = (url, params) => {
//     return axios({
//         method: 'get',
//         url:`${base}${url}`,
//         // params: params
//         data: params
//     })
// };


// export default class request {

// }

export default service